using System.Diagnostics;
using System.Drawing;
using Microsoft.WowAddonStudio.FrameXml.Components.Support;
using Microsoft.WowAddonStudio.FrameXml.Serialization;
using Microsoft.WowAddonStudio.FrameXml.Serialization.LayoutFrames;
using Microsoft.WowAddonStudio.FrameXml.Services;
using Color=Microsoft.WowAddonStudio.FrameXml.Serialization.Color;
using Font=Microsoft.WowAddonStudio.FrameXml.Serialization.Font;

namespace Microsoft.WowAddonStudio.FrameXml.Components.Tests.Mocks
{
	public class MockFrameXmlGraphics : FrameXmlGraphics
	{
		/// <summary>
		/// Initializes a new instance of the <see cref="MockFrameXmlGraphics"/> class.
		/// </summary>
		/// <param name="imageService">The FrameXML image service.</param>
		/// <param name="fontService">The FrameXML font service.</param>
		/// <param name="graphics">The graphics context.</param>
		public MockFrameXmlGraphics(FrameXmlImageService imageService, FrameXmlFontService fontService, Graphics graphics)
			: base(imageService, fontService, graphics)
		{
		}

		/// <summary>
		/// Draws the backdrop.
		/// </summary>
		/// <param name="backdrop">The backdrop.</param>
		/// <param name="rect">The rect.</param>
		public override bool DrawBackdrop(Backdrop backdrop, Rectangle rect)
		{
			Trace.WriteLine("DrawBackdrop");

		    return true;
		}

		/// <summary>
		/// Draws the font string.
		/// </summary>
		/// <param name="fontString">The font string.</param>
		/// <param name="rect">The rect.</param>
		public override bool DrawFontString(FontString fontString, Rectangle rect)
		{
			Trace.WriteLine("DrawFontString");

		    return true;
		}

		/// <summary>
		/// Draws the font string.
		/// </summary>
		/// <param name="fontString">The font string.</param>
		/// <param name="font">The font.</param>
		/// <param name="color">The color.</param>
		/// <param name="text">The text.</param>
		/// <param name="rect">The rect.</param>
		public override bool DrawFontString(FontString fontString, Font font, Color color, string text, Rectangle rect)
		{
			Trace.WriteLine("DrawFontString");

		    return true;
		}

		/// <summary>
		/// Draws the font string.
		/// </summary>
		/// <param name="fontString">The font string.</param>
		/// <param name="font">The font.</param>
		/// <param name="color">The color.</param>
		/// <param name="rect">The rect.</param>
		public override bool DrawFontString(FontString fontString, Font font, Color color, Rectangle rect)
		{
			Trace.WriteLine("DrawFontString");

            return true;
		}

		/// <summary>
		/// Draws the texture.
		/// </summary>
		/// <param name="texture">The texture.</param>
		/// <param name="rect">The rect.</param>
		public override bool DrawTexture(Texture texture, Rectangle rect)
		{
			Trace.WriteLine("DrawTexture");

		    return true;
		}

		/// <summary>
		/// Draws the button.
		/// </summary>
		/// <param name="button">The button.</param>
		/// <param name="buttonState">State of the button.</param>
		/// <param name="rect">The rect.</param>
		public override bool DrawButton(Button button, ButtonState buttonState, Rectangle rect)
		{
			Trace.WriteLine("DrawButton");

            return true;
		}
	}
}